import io
import PyInstaller.__main__
import os
import shutil
import sys

# 设置标准输出为UTF-8编码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')


class LinuxBuilder:
    def __init__(self):
        self.base_params = [
            'client.py',
            '--onefile',
            '--noconsole',
            '--clean',
            '--hidden-import=fastapi',
            '--hidden-import=uvicorn',
            '--hidden-import=webview',
            '--hidden-import=psutil',
            '--hidden-import=requests',
            '--hidden-import=json',
            '--hidden-import=threading',
            '--hidden-import=common.reset_machine',
            '--hidden-import=common.update_cursor_token',
            '--hidden-import=routers.cursor',
        ]

    def build(self):
        print("\n开始为 Linux 平台打包...")
        params = self.base_params + [
            '--name=CursorTask-linux',
            '--add-data=assets:assets',
            '--hidden-import=gi',
            '--hidden-import=webkit2'
        ]
        PyInstaller.__main__.run(params)
        print("Linux 平台打包完成！")


if __name__ == '__main__':
    builder = LinuxBuilder()
    builder.build()
